#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <string.h>

int main(void) {
	FILE *fp = fopen("1.txt", "r+");
	if (fp == NULL) {
		printf("failed to open file.\n");
		exit(-1);
	}
	// 一次读一个字符
	int ch = fgetc(fp);
	int ch2 = fgetc(fp);
	int ch3 = fgetc(fp);

	// 由于文件只有三个字符,此时文件指针已经移动到了文件末尾,再写的话就相当于追加写入
	// 但我就是不想追加写,就是想从头开始写,那就将文件指针再移到文件的开头
	// C语言的标准库函数提供了这种操作:rewind(FILE*) 该函数会将文件流的文件指针位置移动文件开头
	rewind(fp);

	// 一个写一个字符
	fputc('1', fp);
	fputc('2', fp);
	fputc('3', fp);

	// 对文件进行输出数据的操作,最好在操作结束后手动刷新缓冲区,避免因数据保留在缓冲区导致的错误
	fflush(fp);

	fclose(fp);
	return 0;
}